package cn.biplam.front.template.control.rfFlowTable.callback.content;

import cn.biplam.common.wrapper.ErrorMessage;
import cn.biplam.common.wrapper.Result;
import cn.biplam.common.wrapper.UserInfo;
import cn.biplam.front.callback.CallBack;
import cn.biplam.front.html.base.HtmlWindow;
import cn.biplam.front.template.base.Radio;
import cn.biplam.front.template.base.Radio.Layout_Type;

/**
 *  单选按钮单元格回调器(表格单元格内容是单选按钮时使用)
 * @author XiaoRuxing Nov 17, 20092:57:15 PM
 * @version 1.0
 */
public class RadioCallback implements CallBack{

	/** 单选按钮值对应字段 */
	private String valueField;
	/** 单选按钮显示标题对应字段 */
	private String captionField;
	/** 应用系统路径 */
	private String sHomeUrl;
	
	/**
	 * 创建单选按钮回调器
	 * @param sHomeUrl   应用系统路径
	 * @param valueFiled 按钮值字段名
	 */
	public RadioCallback(String sHomeUrl,
			String valueFiled){
		this(sHomeUrl,valueFiled,null);
	}

	/**
	 * 创建单选按钮回调器
	 * @param sHomeUrl     应用系统路径
	 * @param valueFiled   按钮值回调器
	 * @param captionField 按钮标题回调器(可以为空)
	 */
	public RadioCallback(String sHomeUrl,
			String valueFiled,
			String captionField){
		this.sHomeUrl = sHomeUrl;
		this.valueField = valueFiled;
		this.captionField = captionField;
	}

	/**
	 * 创建单选按钮
	 */
	public HtmlWindow[] getGroup(Result data, String homeUrl, UserInfo user)
	throws ErrorMessage {
		String sText = null;
		if(captionField!=null)sText = data.getString(captionField);//如果标题字段名不为空,获取标题
		HtmlWindow win[] = new HtmlWindow[1];
		Radio radio=new Radio(valueField,
				data.getString(valueField),
				sHomeUrl,
				sText,
				Layout_Type.Horizontal);
		win[0] = radio.get();
		return win;
	}
}
